home *** CD-ROM | disk | FTP | other *** search
/ Amiga CD-ROM Collection / Amiga CD-ROM Collection - Auge 4000 and Cactus and Demo Util.iso / auge4000 / 19 / write / write.s < prev   
Text File  |  1988-05-15  |  4KB  |  255 lines

  1. run:
  2.     move.l    d0,pd0
  3.     move.l    a0,pa0
  4.     move.l    $4,a6            ;Testen, ob das Programm
  5.     suba.l    a1,a1            ;von der Wokrbench aus,
  6.     jsr    -294(a6)        ;oder vom CLI gestartet
  7.     move.l    d0,a4            ;wurde.
  8.     tst.l    172(a4)
  9.     bne    cli        ;Es wurde vom CLI aus gestartet
  10.     lea    $5c(a4),a0
  11.     jsr    -384(a6)        ;Message abholen
  12.     jsr    -372(a6)
  13.     move.l    d0,a2
  14.     cmp.l    #2,$1c(a2)
  15.     beq    gon
  16.     rts
  17. gon:
  18.     move.l    36(a2),d0
  19.     move.l    d0,pp
  20.     bsr    opendos
  21.     tst.l    d0
  22.     beq    closedos
  23.     jsr    memory
  24.     move.l    dosbase,a6
  25.     move.l    pp,d0
  26.     move.l    pp,a0
  27.     move.l    8(a0),d1
  28.     jsr    -126(a6)
  29.     move.l    pp,a0
  30.     move.l    12(a0),d1
  31.     jmp    lies
  32. cli:
  33.     move.l    pd0,d0
  34.     move.l    pa0,a0
  35.     cmp.b    #31,d0
  36.     bhi    frage
  37.     subq    #2,d0
  38.     beq    frage
  39.     bmi    frage
  40. rlp:
  41.     move.b    (a0)+,d1
  42.     cmp.b    #63,d1
  43.     beq    frage
  44.     cmp.b    #$20,d1
  45.     bne    ok
  46.     dbra    d0,rlp
  47.     jmp    frage
  48.     
  49. opendos:
  50.     move.l    $4,a6
  51.     lea    dosname,a1
  52.     jsr    -408(a6)
  53.     move.l    d0,dosbase
  54.     rts
  55.  
  56. memory:
  57.     move.l    $4,a6            ;Chip-Ram für die Sound-
  58.     move.l    #2,d1            ;Kurve anfordern
  59.     move.l    #2,d0
  60.     jsr    -198(a6)
  61.     move.l    d0,mmry
  62.     lea    kurve,a0        ;Werte ins Chip-Ram schieben
  63.     move.l    mmry,a1
  64.     move.w    (a0),(a1)
  65.     rts
  66.  
  67. ok:
  68.     lea    filename,a1
  69.     cmp.b    #34,d1
  70.     beq    rgn
  71.     move.b    -(a0),d1
  72.     jmp    rlp2
  73. rgn:
  74.     subq    #2,d0
  75. rlp2:
  76.     move.b    (a0)+,(a1)+
  77.     dbra    d0,rlp2
  78.  
  79. type:
  80.     jsr    opendos
  81.     jsr    memory
  82.     tst.l    d0
  83.     beq    closedos
  84.     move.l    #filename,d1
  85. lies:
  86.     move.l    #1005,d2
  87.     move.l    dosbase,a6
  88.     jsr    -30(a6)
  89.     move.l    d0,filehd
  90.     beq    fileerror1
  91.     move.l    #name2,d1
  92.     move.l    #1005,d2
  93.     jsr    -30(a6)
  94.     move.l    d0,outhd
  95. loop:
  96.     move.l    filehd,d1
  97.     move.l    #puffer,d2
  98.     move.l    #1,d3
  99.     jsr    -42(a6)
  100.     tst.l    d0
  101.     beq    ende
  102.     lea    puffer,a1
  103.     cmp.b    #150,(a1)
  104.     bne    wtr1
  105.     move.l    filehd,d1
  106.     move.l    #puffer,d2
  107.     move.l    #1,d3
  108.     jsr    -42(a6)
  109.     tst.l    d0
  110.     beq    ende
  111.     lea    puffer,a1
  112.     move.b    (a1),puffer2
  113.     sub.b    #1,puffer2
  114.     jmp    loop
  115. wtr1:
  116.     move.l    outhd,d1
  117.     move.l    #puffer,d2
  118.     move.l    #1,d3
  119.     jsr    -48(a6)
  120.     tst.l    d0
  121.     beq    ende
  122.     cmp.b    #$75,$bfec01    ;Escape gedrückt ?
  123.     beq    ende
  124.     cmp.b    #$7f,$bfec01    ;Space gedrückt ?
  125.     beq    loop
  126.     cmp.b    #$39,$bfec01    ;Ctrl gedrückt ?
  127.     beq    pause
  128.     move.b    puffer,d0
  129.     cmp    #$20,d0
  130.     beq    jp
  131.     cmp    #10,d0
  132.     beq    jp
  133.     cmp    #13,d0
  134.     beq    jp
  135.     move.b    puffer2,d0
  136.     beq    wtr2
  137.     sub.b    #1,puffer2
  138.     jmp    loop
  139. wtr2:
  140.     jsr    ton
  141. gon1:
  142.     move.l    #1000,d2
  143. llp:
  144.     dbra    d2,llp
  145.     jmp    loop
  146. ende:
  147.     move.l    $4,a6
  148.     move.l    mmry,a1
  149.     move.l    #2,d0
  150.     jsr    -210(a6)        ;Speicher wieder freigeben
  151.     move.l    dosbase,a6
  152.     move.l    filehd,d1
  153.     jsr    -36(a6)
  154.     move.l    #100,d1
  155. llp2:
  156.     jsr    wait
  157.     dbra    d1,llp2
  158. ende2:
  159.     move.l    outhd,d1
  160.     jsr    -36(a6)
  161. closedos:
  162.     move.l    dosbase,a1
  163.     move.l    $4,a6
  164.     jsr    -414(a6)
  165.     rts
  166.  
  167. frage:
  168.     jsr    opendos
  169.     tst.l    d0
  170.     beq    closedos
  171.     move.l    dosbase,a6
  172.     jsr    -60(a6)
  173.     move.l    d0,outhd
  174.     move.l    d0,d1
  175.     move.l    #text,d2
  176.     move.l    #textende-text,d3
  177.     jsr    -48(a6)
  178.     jmp    closedos
  179.  
  180. jp:
  181.     jsr    wait
  182.     jmp    gon1
  183.  
  184. fileerror1:
  185.     move.l    dosbase,a6
  186.     jsr    -60(a6)
  187.     move.l    d0,outhd
  188.     move.l    d0,d1
  189.     move.l    #textende,d2
  190.     move.l    #text2ende-textende,d3
  191.     jsr    -48(a6)
  192.     jmp    closedos
  193.  
  194. fileerror2:
  195.     move.l    dosbase,a6
  196.     jsr    -60(a6)
  197.     move.l    d0,outhd
  198.     move.l    d0,d1
  199.     move.l    #text2ende,d2
  200.     move.l    #text3ende-text2ende,d3
  201.     jsr    -48(a6)
  202.     jmp    closedos
  203.  
  204. pause:
  205.     cmp.b    #$39,$bfec01
  206.     beq    pause
  207. pause2:
  208.     cmp.b    #$39,$bfec01
  209.     bne    pause2
  210. pause3:
  211.     cmp.b    #$39,$bfec01
  212.     beq    pause3
  213.     jmp    loop
  214.  
  215. wait:
  216.     move.l    dosbase,a6
  217.     move.l    #25000,d3
  218. wlp1:
  219.     dbra    d3,wlp1
  220.     rts
  221.  
  222. ton:
  223.     move.l    mmry,$dff0a0
  224.     move    #1,$dff0a4
  225.     move    #800,$dff0a6
  226.     move    #60,$dff0a8
  227.     move    #$8201,$dff096
  228.     jsr    wait
  229.     move    #1,$dff096
  230.     rts
  231.  
  232. dosname:     dc.b "dos.library",0
  233. kurve:        dc.b 127,-127
  234. text: dc.b "Dieses Programm gibt den Inhalt einer Textdatei auf dem "
  235.       dc.b "Bildschirm aus.",10
  236.       dc.b "Geschrieben in 1988 von "
  237.       dc.b "Tobias Eckert, Austraße 17, 6482 Bad Orb",10,0
  238. textende:
  239. dc.b "Ladefehler !!!    Datei nicht gefunden.",10,0
  240. text2ende:
  241. dc.b "Ladefehler !!!    Datei kann nicht gelesen werden.",10,0
  242. text3ende:
  243. name2: dc.b "raw:0/0/640/200/*** Write ***"
  244. puffer2:    dc.b 0
  245. even
  246. dosbase: dc.l    0
  247. filehd:     dc.l    0
  248. outhd:     dc.l    0
  249. puffer:     dc.l    0
  250. filename:  blk.l  8,0
  251. pd0:    dc.l 0
  252. pa0:    dc.l 0
  253. pp:    dc.l 0
  254. mmry:    dc.l 0
  255.